package com.xueyi.system.seed.domain.po;

import cn.hutool.json.JSONArray;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xueyi.common.core.web.tenant.base.TBaseEntity;
import com.xueyi.system.seed.domain.dto.BaseSeedDto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.xueyi.common.core.annotation.Excel;

import java.time.LocalDateTime;

/**
 * 种子种苗基础管理 持久化对象
 *
 * @author zlf
 */
@TableName(value = "base_seed", excludeProperty = {"sort", "status"},autoResultMap = true)
public class BaseSeedPo extends TBaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 种子编码
     */
    @Excel(name = "种子编码")
    @TableField("code")
    private String code;

    /**
     * 批次
     */
    @Excel(name = "批次")
    @TableField("batch")
    private String batch;

    /**
     * 供应商
     */
    @Excel(name = "供应商")
    @TableField("supplier")
    private String supplier;

    /**
     * 供应商
     */
    @Excel(name = "供应商id")
    @TableField("supplier_id")
    private String supplierId;

    /**
     * 基原
     */
    @Excel(name = "基原")
    @TableField("primitive")
    private String primitive;

    /**
     * 基原
     */
    @Excel(name = "种子类型")
    @TableField("seed_type")
    private String seedType;

    /**
     * 基原
     */
    @Excel(name = "种苗规格")
    @TableField("seed_spec")
    private String seedSpec;

    /**
     * 类型多选（1种、2亚种、3变种、4变型、5农家品种、6选育品种）
     */
    @Excel(name = "类型多选", readConverterExp = "1=种、2亚种、3变种、4变型、5农家品种、6选育品种")
    @TableField("type")
    private String type;

    /**
     * 采购日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "采购日期", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("purchase_date")
    private LocalDateTime purchaseDate;

    /**
     * 单据凭证
     */
    @Excel(name = "单据凭证")
    @TableField("document_voucher")
    private String documentVoucher;

    /**
     * 检测报告
     */
    @Excel(name = "检测报告")
    @TableField("check_report")
    private String checkReport;

    /**
     * 基元报告
     */
    @Excel(name = "基元报告")
    @TableField(value = "origin_report", typeHandler = FastjsonTypeHandler.class)
    private JSONArray originReport;

    /**
     * 图片
     */
    @Excel(name = "图片")
    @TableField("image")
    private String image;

    /**
     * 负责人
     */
    @Excel(name = "负责人")
    @TableField("leading_cadre")
    private String leadingCadre;
    /**
     * 负责人
     */
    @Excel(name = "负责人id")
    @TableField("leading_cadre_id")
    private String leadingCadreId;

    /**
     * 贮存方法
     */
    @Excel(name = "贮存方法")
    @TableField("storage_method")
    private String storageMethod;

    /**
     * 土地整理
     */
    @Excel(name = "土地整理")
    @TableField("land_arrange")
    private String landArrange;

    /**
     * 审核人
     */
    @TableField(value = "checker")
    private String checker;

    /**
     * 审核人
     */
    @TableField(value = "check_code")
    private String checkCode;


    public String getChecker() {
        return checker;
    }

    public void setChecker(String checker) {
        this.checker = checker;
    }

    public String getCheckCode() {
        return checkCode;
    }

    public void setCheckCode(String checkCode) {
        this.checkCode = checkCode;
    }

    public JSONArray getOriginReport() {
        return originReport;
    }

    public void setOriginReport(JSONArray originReport) {
        this.originReport = originReport;
    }

    public String getLandArrange() {
        return landArrange;
    }

    public void setLandArrange(String landArrange) {
        this.landArrange = landArrange;
    }

    public String getSeedSpec() {
        return seedSpec;
    }

    public void setSeedSpec(String seedSpec) {
        this.seedSpec = seedSpec;
    }

    public String getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(String supplierId) {
        this.supplierId = supplierId;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getCode() {
        return code;
    }

    public String getSeedType() {
        return seedType;
    }

    public void setSeedType(String seedType) {
        this.seedType = seedType;
    }

    public void setBatch(String batch) {
        this.batch = batch;
    }

    public String getBatch() {
        return batch;
    }

    public void setSupplier(String supplier) {
        this.supplier = supplier;
    }

    public String getSupplier() {
        return supplier;
    }

    public void setPrimitive(String primitive) {
        this.primitive = primitive;
    }

    public String getPrimitive() {
        return primitive;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public void setPurchaseDate(LocalDateTime purchaseDate) {
        this.purchaseDate = purchaseDate;
    }

    public LocalDateTime getPurchaseDate() {
        return purchaseDate;
    }

    public void setDocumentVoucher(String documentVoucher) {
        this.documentVoucher = documentVoucher;
    }

    public String getDocumentVoucher() {
        return documentVoucher;
    }

    public void setCheckReport(String checkReport) {
        this.checkReport = checkReport;
    }

    public String getCheckReport() {
        return checkReport;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getImage() {
        return image;
    }

    public void setLeadingCadre(String leadingCadre) {
        this.leadingCadre = leadingCadre;
    }

    public String getLeadingCadre() {
        return leadingCadre;
    }

    public void setStorageMethod(String storageMethod) {
        this.storageMethod = storageMethod;
    }

    public String getStorageMethod() {
        return storageMethod;
    }

    public String getLeadingCadreId() {
        return leadingCadreId;
    }

    public void setLeadingCadreId(String leadingCadreId) {
        this.leadingCadreId = leadingCadreId;
    }
}
